package com.kuaiyin.service;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.IService;
import com.kuaiyin.dto.LoginDTO;
import com.kuaiyin.dto.UserDTO;
import com.kuaiyin.entity.User;
import com.kuaiyin.utils.PageResult;
import com.kuaiyin.vo.LoginVO;
import com.kuaiyin.vo.UserDetailVO;
import com.kuaiyin.vo.UserVO;

import java.util.List;
import java.util.function.Consumer;

/**
 * <p>
 * 用户基础信息表（使用逻辑外键） 服务类
 * </p>
 *
 * @author ng
 * @since 2025-04-21
 */
public interface IUserService extends IService<User> {

    UserDetailVO getById(Long id);

    void saveUser(UserDTO userDTO);

    void updateUser(Long id, UserDTO userDTO);

    List<UserVO> getUserList();

    LoginVO login(LoginDTO loginDTO);

    void updateUserStatus(Long id, Integer status);

    PageResult<UserVO> getUserPage(Integer page, Integer size, Consumer<LambdaQueryWrapper<User>> condition);
}
